#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int check_sys()
//{
//	int a = 1;
//	char* p = (char*)&a;
//	return *p;//返回1表示小端，返回0表示大端
//}
//
//int main()
//{
//	int ret = check_sys();
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//
//	return 0;
//}

//int main()
//{
//	char a = -1;
//	//原：10000000000000000000000000000001
//	//反：11111111111111111111111111111110
//	//补：11111111111111111111111111111111
//	//此时a被赋值：11111111
//	signed char b = -1; 
//	//同a
//	unsigned char c = -1;
//	//此时c被赋值：11111111
//	printf("a=%d , b=%d , c=%d", a, b, c);
//	//整型提升看原类型符号位，有符号→高位补1，无符号→高位补0.
//	//a：11111111111111111111111111111111 - 打印-1
//	//b：同a
//	//c：00000000000000000000000011111111 - 打印225
//	
//	return 0;
//}

//int main()
//{
//	char a = 128;
//	//00000000000000000000000010000000
//	//10000000
//	printf("%u\n", a);
//	//有符号，高位补1
//	//11111111111111111111111110000000 - 打印4294967168
//	return 0;
//}

//int main()
//{
//	int i = -20;
//	//10000000000000000000000000010100
//	//11111111111111111111111111101011
//	//11111111111111111111111111101100
//	unsigned int j = 10; 
//	//00000000000000000000000000001010
//	printf("%d\n", i + j);
//	//11111111111111111111111111110110
//	//10000000000000000000000000001001
//	//10000000000000000000000000001010
//}

//int main()
//{
//	unsigned int i;
//	for (i = 9; i >= 0; i--) //i大于等于0一直成立，死循环
//	{
//		printf("%u\n", i);
//	}
//
//}

//int main()
//{
//	char a[1000];
//	int i;
//	for (i = 0; i < 1000; i++) 
//	{
//		a[i] = -1 - i;
//	}
//	//-1 -2 -3,......,-128,127,126,......,3,2,1,0
//	//0 - \0
//	//128 + 127 = 225
//	printf("%d" ,strlen(a)); 
//	
//	return 0;
//}

//unsigned char i = 0; 
//int main()
//{
//	for (i = 0; i <= 255; i++)
//	{
//		printf("hello world %d\n",i);
//	}
//	//0 - 255死循环
//	return 0;
//}

int main()
{
	int n = 9;
	float* pFloat = (float*)&n;
	printf("n的值为:%d\n" , n);//7
	printf("*pF1oat的值为:%f\n", *pFloat);//0.000000
	//n -> 00000000000000000000000000001001
	//s e        m
	//0 00000000 00000000000000000001001
	//E全0:(0.00000000000000000001001 * 2^1-127)
	*pFloat = 9.0;
	printf("num的值为:%d\n", n);//1091567616
	printf("*pF1oat的值为:%f\n",*pFloat);//9.000000
	//1001.0
	//1.001 * 2^3
	//*pFloat -> 
	//s e=3+127  m
	//0 10000010 00100000000000000000000
	//正数，原反补相同，1091567616
	return 0;
}

